package xin.codedream.codelog.service;

import xin.codedream.codelog.exception.CategoryException;
import xin.codedream.codelog.model.entity.Category;

import java.util.List;

/**
 * 分类目录服务层
 *
 * @author NGLSL
 * @date 2018/8/12
 */
public interface CategoryService {
    /**
     * 获取所有目录列表
     *
     * @return List<Category>
     */
    List<Category> findAllCategory();

    /**
     * 通过目录ID查询目录
     *
     * @param cateId 目录ID
     * @return Category
     */
    Category findCategoryByCateId(Long cateId);

    /**
     * 通过目录ID删除目录
     *
     * @param cateId 目录ID
     * @return boolean
     */
    boolean removeCategoryByCateId(Long cateId);

    /**
     * 删除目录
     *
     * @param cateId 目录Id
     * @return boolean
     * @throws CategoryException
     */
    boolean removeCategory(Long cateId) throws CategoryException;

    /**
     * 保存目录信息
     *
     * @param category 目录信息
     * @return boolean
     */
    boolean saveCategoryInfo(Category category);

    /**
     * 更新目录信息
     *
     * @param category 目录信息
     * @return boolean
     */
    boolean updateCategoryInfo(Category category);
}
